This invention relates to a multi-processing computing system and more particularly to such a system founded upon a single-user microprocessor.
Multi-user and multi-purpose computing systems are now well known and widely used for many applications. Typically these systems have an operating system for controlling the functions of the machine in response to user instruction sets, called programs. The operating system, of which the UNIX (trademark of Bell Telephone Laboratories) operating systems is but one of many, resides or runs on a host computer.
One characteristic designed into the host computer is the ability to handle multiple users on a time shared basis. This characteristic, while appearing simple to the user, is in fact a complex system which serves many purposes, such as, for example, keeping one user's files separate from another user's files.
Another example of such multi-process computers is the ability of the host computer to prevent one user's programs from interfering with the programs of another or with the operating system itself. One typical example of the complexity is the inherent ability of the computer to prevent any user program from gaining control of the computer to such an extent that no other user could gain access thereto. Another typical example would be the ability of the host computer to prevent a user from destroying or erasing a disk file or memory due, possibly to a faulty command, or even due to a purposeful instruction.
Another set of problems revolves around the question of memory space allocation, protection and control. The addresses to which a user's data is to be written resides on internal registers in the microprocessor. Each user's program has complete control over these registers, and consequently, one user's data could be written into the memory space used by another user.
While large computers have solved many of these problems there exists a number of microprocessors, which because they are designed for single users, do not possess the inherent capability of managing memory space between users or preventing the user from inadvertently, or willfully, taking unauthorized action.
The problem is compounded in that these microprocessors are designed with simplicity in mind and with specific input/output capability via certain preestablished leads and all communication to or from the microprocessor must be via commands (0 or 1) on these specific leads. Thus, there is required a circuit for configuring such single user microprocessors to accomplish multi-processing and multi-user operations without necessitating a change in the standard microprocessor and without adding inordinate overhead in the form of software control or protection circuitry.